DSKINT page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
DSKINT page# 0002 next prev
24: BEGIN DSKINT
25:
26:
27:
28:
29: ↑DHNGCT←←=5
30: ↑DLHNGCT←←=60
31:
32:
33:
34:
35: DSKNXM←←200000
36: DCHNER←←100000
37: SELERR←←40000
38: CPARER←←20
39:
40:
41: PARERR←←400000
42: ↑↑CHDEMP←←200000
43: IDLE←←100000
44: ↑↑UNEND←←40000+PARERR
45: ↑↑NEWST←←20000
46: CPIACT←←20
47:
48:
49:
50: CLREND←←4000
51: ↑↑ACTCLR←←400
52: ↑↑CNEWST←←200
53: CLRSTS←←40
54: ↑CLRCHL←←20
55: CRESET←←1
56:
57:
58:
59: ↑↑ATTN←←10000
60: ↑↑STMOD←←4000
61: ↑↑CUEND←←2000
62: ↑↑BUSY←←1000
63: ↑↑CHNEND←←400
64: ↑↑DEVEND←←200
65: ↑↑UCHK←←100
66: ↑↑UXCPTN←←40
67:
68:
69: BITCL0←←155
70: CMDRJT←←100000
71: BITCL1←←20000
72: BITCL2←←4000
73: BITCL4←←2000
74: BITCL5←←40002
75: WRTINH←←2
76: PERM←←200
77: BITEQU←←10000
78:
79: ERRUSE←←20
80:
81:
82: SKCHK←←32
83: SKINCP←←33
84: RTYABT←←6
85: DWERR←←320
86: DVERR←←100
DSKINT page# 0003 next prev
88:
89: ↑WLDIAG:MOVEM 17,DSKACS+17
90: MOVEI 17,DSKACS
91: BLT 17,DSKACS+16
92: MOVEM IOS,DEVIOS(DDB)
93: SETZ TAC,
94: DPB TAC,[POINT 3,TSTXOR,11]
95: MOVE TAC,DXC
96: MOVEI TAC,DLHNGCT
97: MOVEM TAC,DHNGST
98: MOVEM TAC,DSKHNG
99: SETOM DSKACT
100: SETOM ERRCMD
101: PUSHJ P,ERRCLR
102: WLRTRY: CONO PMP,NEWST!UNEND!10!DSKCHN
103: CONO IBM,CNEWST!CLREND!ACTCLR
104: MOVE TAC,DXC
105: TRNN TAC,DWRITE
106: JRST LDIAG1
107: DATAO PMP,[FILMSK]
108: DATAO IBM,MSKCMD
109: PUSHJ P,ISYNC
110: JRST WLRTRY
111: JRST WLERR
112: DATAO PMP,DXS
113: DATAO IBM,DWCMD
114: JRST WLWAIT
115:
116: LDIAG1: CONO IBM,ACTCLR
117: DATAO PMP,[DXS]
118: DATAO IBM,DLCMD
119: WLWAIT: PUSHJ P,ISYNC
120: JRST WLRTRY
121: JRST WLERR
122: MOVE TAC,PMPCNI
123: TRNN TAC,DEVEND
124: JRST WLWAIT
125: CONO IBM,ACTCLR
126: DATAO PMP,DXW
127: DATAO IBM,RD1CMD
128: PUSHJ P,ISYNC
129: JRST WLRTRY
130: JRST WLERR
131: JRST NOLUZ
132:
133: WLERR: PUSHJ P,DSKERR
134: JRST WLRTRY
135: JRST NOLUZ
DSKINT page# 0004 next prev
137:
138:
139: ↑GO2314:MOVEM 17,DSKACS+17
140: MOVEI 17,DSKACS
141: BLT 17,DSKACS+16
142: MOVEM IOS,DEVIOS(DEVDAT)
143: AOS DSKOPS
144: SKIPLE TAC,DXJ
145: AOS DSKOPS(TAC)
146: SKIPE DXS
147: PUSHJ P,CSATID
148: SETOM DSKACT
149: MOVEI TAC,DHNGCT
150: MOVEM TAC,DHNGST
151: MOVEM TAC,DSKHNG
152: MOVE TAC,DXC
153: TRNE TAC,100
154: SKIPG TAC,DXS
155: JRST NOCHK
156: MOVE TAC1,DSKACS+DDB
157: TRNN TAC,77
158: SKIPGE DDLOC(TAC1)
159: JRST NOCHK
160: PUSHJ P,DOCHK
161: JRST NOLUZ
162: NOCHK: PUSHJ P,CADDR
163: JRST NOLUZ
164: SETOM DSKACT
165: MOVEI TAC,DHNGCT
166: MOVEM TAC,DHNGST
167: MOVEM TAC,DSKHNG
168: PUSHJ P,ICALL
169: SKIPN D2LUZ
170: JRST NOLUZ
171: MOVE TAC,DSKACS+DDB
172: MOVEI TAC1,IODERR
173: IORM TAC1,DEVIOS(TAC)
174: NOLUZ: SETZM DSKACT
175: SETZM DSKHNG
176: CONO PMP,NEWST!UNEND!10!DSKCHN
177: CONO IBM,CNEWST!CLREND!ACTCLR
178: CONO PI,D2OFF
179: SKIPE DXS
180: PUSHJ P,CSATID
181: MOVE TAC,STAC
182: MOVE TAC1,STAC1
183: MOVE P,SAVP
184: MOVE AC3,SAC3
185: MOVE DAT,SDAT
186: JSR DSKSV
187: POP P,INTRTN
188: MOVSI 17,DSKACS
189: BLT 17,17
190: MOVE IOS,DEVIOS(DEVDAT)
191: POPJ P,
192:
DSKINT page# 0005 next prev
194: DOCHK: PUSH P,DXW
195: PUSH P,DXC
196: MOVE TAC,[XWD -SECSIZ,QBUF]
197: MOVEM TAC,DXW
198: MOVEI TAC,DSKCHN
199: MOVEM TAC,DXC
200: PUSHJ P,CADDR
201: JRST [ POP P,DXC
202: POP P,DXW
203: POPJ P,]
204: POP P,DXC
205: POP P,DXW
206: SKIPG DSKLRN
207: JRST CPOPJ1
208: PUSHJ P,ICALL
209: MOVE TAC1,DSKACS+DDB
210: MOVEI TAC,IODERR!IODTER
211: SKIPE D2LUZ
212: IORM TAC,DEVIOS(TAC1)
213: TDNE TAC,DEVIOS(TAC1)
214: POPJ P,
215: LDB TAC,[POINT PUNITS,DEVCHR(TAC1),35-PUNITP]
216: MOVE TAC,SATADR(TAC)
217: MOVE TAC,SATID(TAC)
218: CAMN TAC,QBUF+DSATID-DSKDAT
219: SKIPN AC3,QBUF
220: JRST CPOPJ1
221: MOVE TAC,QBUF+1
222: XOR TAC,FILEXT(TAC1)
223: CAMN AC3,FILNAM(TAC1)
224: TLNE TAC,-1
225: SKIPN QBUF+3
226: JRST CPOPJ1
227: DSKQK1: PUSH P,TEM
228: HRRZ TEM,DXW
229: MOVE TAC,QBUF+3
230: CAMN AC3,(TEM)
231: CAME TAC,3(TEM)
232: JRST DSKQKP
233: MOVE TAC,QBUF+1
234: XOR TAC,1(TEM)
235: TLNE TAC,-1
236: JRST DSKQKP
237: POP P,TEM
238: JRST CPOPJ1
239:
240: DSKQKP: POP P,TEM
241: DSKQK2: CAMN AC3,SRCNAM(TAC1)
242: JRST CPOPJ1
243: HRRZ TAC,DXW
244: PUSH P,TAC
245: LDB TAC,[POINT PUNITS,DEVCHR(TAC1),35-PUNITP]
246: MOVE TAC,SATADR(TAC)
247: SKIPL DDLOC(TAC1)
248: CAMN TAC,(P)
249: JRST TPOPJ1
250: POP P,TAC
251: PUSHACS
252: PUSHJ P,DISDATE
253: MOVE UUO,DSKACS+DDB
254: PUSHJ P,DISERR
255: [ASCIZ/OVERWRITE CHECK, LR = /]
256: DISARG LOC,DSKLRN
257: [ASCIZ/
258: WRITING FILE /]
259: DISARG SIX,FILNAM(UUO)
260: [ASCIZ/./]
261: DISARG SIX,FILEXT(UUO)
262: [ASCIZ/[/]
263: DISARG SIX,FILPPN(UUO)
264: [ASCIZ/] DDLOC = /]
265: DISARG LOC,DDLOC(UUO)
266: [ASCIZ/
267: ON TOP OF FILE /]
268: DISARG SIX,QBUF-DSKDAT+DDNAM
269: [ASCIZ/./]
270: DISARG SIX,QBUF-DSKDAT+DDEXT
271: [ASCIZ/[/]
272: DISARG SIX,QBUF-DSKDAT+DDPPN
273: [ASCIZ/] DDLOC = /]
274: DISARG LOC,QBUF-DSKDAT+DDLOC
275: [ASCIZ/
276:
277:
278: /]
279: -1
280: SKIPN DEBMOD
281: JRST .+3
282: SETOM DISFLAG
283: PUSHJ P,DISFLUSH
284: POPACS
285: SKIPE DEBMOD
286: PUSHJ P,DDTCALL
287: NOOSTP: AOS DSKOVC
288: MOVSI TAC,HDRDIF!PNTDIF
289: IORM TAC,DEVIOS(TAC1)
290: MOVE AC3,TAC1
291: PUSH P,AC1
292: PUSH P,AC2
293: PUSHJ P,IASNBK
294:
295: MOVE TAC1,[POINT 18,DPTR(AC3)]
296: MOVEI AC2,40
297: ILDB AC1,TAC1
298: CAME AC1,DSKLRN
299: SOJG AC2,.-2
300:
301: JUMPG AC2,DSKQK3
302: POP P,AC2
303: POP P,AC1
304: JRST DSKQY
305: DSKQK3: DPB TAC,TAC1
306: POP P,AC2
307: POP P,AC1
308: CAME TAC1,[POINT 18,DPTR(AC3),17]
309: JRST DSKQZ
310: MOVSI TAC1,NTRUFD
311: IORM TAC1,DEVIOS(AC3)
312: MOVEI TAC1,1
313: CAME TAC1,DGRP1R(AC3)
314: JRST DSKQY
315: HRRZM TAC,FILLOC(AC3)
316: HRRZM TAC,DDLOC(AC3)
317: JRST DSKQZ
318: DSKQY: MOVEI TAC1,IODERR
319: IORM TAC1,DEVIOS(AC3)
320: POPJ P,
321: DSKQZ: PUSHJ P,BK2SEC
322: MOVEM TAC,DXS
323: JRST DOCHK
DSKINT page# 0006 next prev
325:
326:
327: CASWAP: TLZ TAC,400000
328: LSH TAC,-14
329: IMULI TAC,<CAT(NTRK,\<NPACKS-1>)/LJOBN>
330:
331: MOVE TAC1,SWPDDB
332: LDB TAC1,[POINT PUNITS,DEVCHR(TAC1),35-PUNITP]
333: ADD TAC,BFSET(TAC1)
334: HRROM TAC,DSKLRN
335: MOVSI TAC1,(<BYTE(8)1>)
336: MOVEM TAC1,XWRAP
337: MOVEI TAC1,1
338: JRST CDX3
339:
340: CADDR1: MOVE AC3,DXC
341: TRNE AC3,100
342: JUMPN TAC1,CDX4
343: SETOM DSKLRN
344: JRST CDX3S
345:
346:
347: CAXTRA: IDIVI TAC,100
348: CAIL TAC,NXTRA0*TRKCYL*BKPTRK
349: JRST CDX4
350: IFG BKPTRK-1,<
351: MOVEI AC3,(TAC1)
352: IDIVI TAC,BKPTRK
353: IMULI TAC1,CRMAX
354: ADDI TAC1,(AC3)
355: >
356: CAIL TAC1,RCPTRK
357: JRST CDX4
358: SETZB AC3,XWRAP
359: SETOM DSKLRN
360: ADDI TAC,NTRK0
361: JRST CDXE
362:
363: CADDR: MOVE TAC,DXW
364: HRLZ TAC1,DXC
365: TLNN TAC1,100
366: TROA TAC1,-1
367: SUB TAC,[1,,0]
368: MOVEM TAC,XWCMA
369: MOVE TAC,WCMD(TAC1)
370: MOVEM TAC,XCMD
371: MOVE TAC,ENDTAB(TAC1)
372: MOVEM TAC,ENDTST
373: MOVE TAC,[JSR D2INT]
374: MOVEM TAC,140+2*D2CHN
375: SKIPGE TAC,DXS
376: JRST CASWAP
377: TLZE TAC,200000
378: JRST CAXTRA
379: IDIVI TAC,100
380: JUMPE TAC,CADDR1
381: MOVEM TAC,DSKLRN
382: MOVE AC3,DSKACS+DDB
383: MOVE AC3,DEVMOD(AC3)
384: TLNN AC3,DVDSK
385:
386: HRROS DSKLRN
387: IFG BKPTRK*NSATBK-1,<
388: ADDI TAC,BKPTRK*NSATBK-1
389: >
390: IFG BKPTRK-1,<
391: MOVEI AC3,(TAC1)
392: IDIVI TAC,BKPTRK
393: IMULI TAC1,CRMAX
394: ADDI TAC1,(AC3)
395: >
396: CDX3S: SETZM XWRAP
397: CDX3: CAIGE TAC1,RCPTRK
398: CAILE TAC,LSTTRK
399: JRST CDX4
400:
401: MOVSI AC3,-NPACKS
402: CDXL: CAMLE TAC,PACKAD(AC3)
403: AOBJN AC3,CDXL
404: JUMPGE AC3,CDX4
405: SUB TAC,PACKAD-1(AC3)
406: SUBI TAC,1
407: CDXE: ROT TAC1,-8
408: MOVEM TAC1,SCDAT+1
409: IDIVI TAC,TRKCYL
410: DPB TAC1,[POINT 8,SKDAT+1,15]
411: DPB TAC1,[POINT 16,SCDAT,31]
412: DPB TAC,[POINT 16,SKDAT,31]
413: DPB TAC,[POINT 16,SCDAT,15]
414: DPB AC3,[POINT 3,SKCMD,21]
415: DPB AC3,[POINT 3,SCCMD,21]
416: DPB AC3,[POINT 3,XCMD,21]
417: DPB AC3,[POINT 3,NOPCMD,21]
418: DPB AC3,[POINT 3,SNSCMD,21]
419: DPB AC3,[POINT 3,RDHACM,21]
420: DPB AC3,[POINT 3,RCALCM,21]
421: DPB AC3,[POINT 3,TSTXOR,11]
422: SETZM LWCMA
423: SETZM LSTOP
424: SETOM LSTREC
425: JRST CPOPJ1
426:
427: CDX4: MOVEM TAC,TYPANY
428: MOVEM TAC1,DSKFLG
429: PUSHACS
430: PUSHJ P,DISERR
431: [ASCIZ/ILLEGAL DISK ADDRESS. DXS = /]
432: DISARG OCT,DXS
433: [ASCIZ/
434: LR = /]
435: DISARG LOC,TYPANY
436: [ASCIZ/ REC = /]
437: DISARG LOC,DSKFLG
438: [ASCIZ/
439: JOB = /]
440: -1
441: HRRZ J,DXJ
442: JUMPE J,.+2
443: PUSHJ P,DISJOB
444: SKIPL DXS
445: JRST NOGOD
446: PUSHJ P,DISMES
447: ASCIZ/ SWAP OP!/
448: NOGOD: PUSHJ P,DISMES
449: ASCIZ/
450:
451: /
452: POPACS
453: MOVE TAC,DSKACS+DDB
454: MOVEI TAC1,IODERR
455: IORM TAC1,DEVIOS(TAC)
456: POPJ P,
457:
DSKINT page# 0007 next prev
459: ICALLA: SKIPGE TAC,LSTREC
460: JRST ICALLN
461: SETOM LSTREC
462: EXCH TAC,SCDAT+1
463: CAMLE TAC,SCDAT+1
464: JRST TOK
465: MOVSI TAC,(<BYTE(16)<-1>>)
466: ADDB TAC,SKDAT+1
467: JUMPGE TAC,COK
468: MOVNI TAC,1⊗4
469: ADDB TAC,SKDAT
470: MOVSI TAC,(<BYTE(16)TRKCYL-1>)
471: MOVEM TAC,SKDAT+1
472: COK: HLRZ TAC,SKDAT+1
473: LSH TAC,4
474: HRL TAC,SKDAT
475: LSH TAC,-2
476: MOVEM TAC,SCDAT
477: TOK: LDB TAC,[POINT 8,SCDAT+1,7]
478: MOVN TAC,RCLTAB(TAC)
479: ADDM TAC,XWCMA
480: ICALLN: HRRZ TAC,D2X
481: LDB TAC,[POINT 4,-1(TAC),12]
482: MOVE TAC1,XCMD
483: TRNE TAC1,1
484: CAIE TAC,2
485: CAIA
486: ADDI TAC,1
487: MOVEM TAC,ERRCMD
488: MOVE TAC1,XWCMA
489: CAMN TAC,LSTOP
490: CAME TAC1,LWCMA
491: CAIA
492: POPJ P,
493: MOVEM TAC,LSTOP
494: MOVEM TAC1,LWCMA
495: ERRCLR:
496: FOR @!X←0,4<
497: SETZM ERRCL!X>
498: SETOM SHADPE
499: POPJ P,
DSKINT page# 0008 next prev
501: ICALLC: SKIPE D2LUZ
502: POPJ P,
503: ICALL: SETZM D2DONE
504: SETZM D2LUZ
505: SETOM CT
506: MOVEI TAC,D2IGO
507: MOVEM TAC,D2X
508: CONO PI,D2ON
509: CONO IBM,CNEWST!CLREND!CLRCHL
510: CONO PMP,NEWST!UNEND!CHDEMP!10!D2CHN
511: PUSHJ P,ESYNC
512: JRST ICALLB
513: AOSN D2DONE
514: POPJ P,
515: PUSHJ P,ICALLA
516: PUSHJ P,DSKERR
517: JRST ICALLC
518: POPJ P,
519:
520: ICALLB: PUSHJ P,ICALLA
521: JRST ICALLC
522:
523: ISYNC: PUSHJ P,ESYNC
524: POPJ P,
525: AOS (P)
526: MOVE TAC,PMPCNI
527: TRNE TAC,UNEND!ATTN!UXCPTN!CUEND!STMOD
528: POPJ P,
529: JRST CPOPJ1
DSKINT page# 0009 next prev
531: ESYNC: MOVEM P,INTPDL
532: SETZM HNGFLG
533: JRST @INTRTN
534:
535: ↑IXINT: MOVEM TAC,STAC
536: MOVEM TAC1,STAC1
537: MOVEM AC3,SAC3
538: MOVEM DAT,SDAT
539: MOVEM P,SAVP
540: MOVE P,INTPDL
541: MOVEI TAC,IXINT2
542: MOVEM TAC,INTRTN
543: CONI PMP,TAC
544: MOVEM TAC,PMPCNI
545: TRNE TAC,UNEND
546: CONO IBM,CLRCHL
547: CONO IBM,CNEWST!CLREND
548: SKIPN DSKACT
549: JRST ASYNC
550: MOVE TAC1,DHNGST
551: MOVEM TAC1,DSKHNG
552: TRNN TAC,NEWST
553: JRST CPOPJ1
554: TRNE TAC,CUEND
555: POPJ P,
556: TRC TAC,STMOD!BUSY
557: TRCN TAC,STMOD!BUSY
558: JRST CKBUSY
559: XOR TAC,TSTXOR
560: TLNN TAC,37700
561: JRST CHKRTY
562: JRST ASYNC0
563:
564: ASYNC: MOVE TAC,STAC
565: MOVE TAC1,STAC1
566: MOVE AC3,SAC3
567: MOVE DAT,SDAT
568: MOVE P,SAVP
569: JSR DSKSAV
570: ASYNC0: CONO IBM,CLRCHL
571: PUSHACS
572: PUSHJ P,DISDATE
573: LDB TAC,[POINT 8,PMPCNI,30]
574: CAIN TAC,DEVEND⊗-5
575: JRST DEVRDY
576: PUSHJ P,DISMES
577: ASCIZ/ASYNCHRONOUS DISK DEVICE INTERRUPT.
578: /
579: JRST SWAIT
580:
581: DEVRDY: PUSHJ P,DISMES
582: ASCIZ/DISK PACK /
583: LDB TAC,[POINT 3,PMPCNI,11]
584: PUSHJ P,DISLOC
585: PUSHJ P,DISMES
586: ASCIZ/ ON LINE.
587: /
588: SWAIT: PUSHJ P,DISERR
589: [ASCIZ/CONI BITS = /]
590: DISARG OCT,PMPCNI
591: [ASCIZ/
592: /]
593: -1
594: CONSO PMP,NEWST
595: JRST SDONE
596: CONI PMP,PMPCNI
597: CONO IBM,CNEWST!CLREND
598: JRST SWAIT
599: SDONE: SKIPN DSKACT
600: JRST SDONE0
601: PUSHJ P,DISMES
602: ASCIZ/DISK ACTIVE, PACK = /
603: LDB TAC,[POINT 3,TSTXOR,11]
604: PUSHJ P,DISLOC
605: SDONE0: PUSHJ P,DISMES
606: ASCIZ/
607:
608: /
609: POPACS
610: PUSHJ P,BLAST
611: SKIPE DSKACT
612: JRST UCHKTS
613: CONO PMP,NEWST!UNEND!10!DSKCHN
614: CONO IBM,ACTCLR
615: POPJ P,
616:
617: UCHKTS: MOVE TAC,PMPCNI
618: TRNN TAC,STMOD
619: TRNN TAC,UCHK
620: POPJ P,
621: SETZM D2DONE
622: JRST CPOPJ1
623:
624: IXINT2: MOVE TAC,STAC
625: MOVE TAC1,STAC1
626: MOVE AC3,SAC3
627: MOVE DAT,SDAT
628: MOVE P,SAVP
629: JEN @DSKCHL
630:
631: CKBUSY: SETZM D2DONE
632:
633:
634:
635:
636: TRNE TAC,CUEND
637: POPJ P,
638: WAIT: CONO PMP,NEWST!UNEND!10!DSKCHN
639: CONO IBM,ACTCLR
640: JRST IXINT2
641:
642: CHKRTY: TRC TAC,STMOD!UCHK
643: TRCE TAC,STMOD!UCHK
644: JRST CPOPJ1
645: SETZM D2DONE
646: TRNN TAC,DEVEND
647: JRST WAIT
648: JRST CPOPJ1
DSKINT page# 0010 next prev
650:
651: DSKERR: PUSHACS
652: CONO IBM,CLRCHL
653: CONO IBM,CNEWST!CLREND
654: SETZM TYPANY
655: SETZM SNSTYP
656: SETZM CSTOP
657: SETZM DEATH
658: SETZM HAFLAG
659: SETZM DSKFLG
660: MOVE UUO,PMPCNI
661: MOVEM UUO,CNISAV
662: DATAI IBM,XDSKMA
663: TLNN UUO,SELERR
664: JRST NOSEL
665: CONO IBM,CRESET
666: PUSHJ P,BLAST
667: POPACS
668: CONO IBM,CNEWST!CLREND!ACTCLR
669: CONO PMP,NEWST!UNEND!10!DSKCHN
670: DATAO IBM,NOPCMD
671: PUSHJ P,ISYNC
672: JRST .-2
673: JFCL
674: PUSHACS
675: MOVE TAC,PMPCNI
676: TLNN TAC,SELERR
677: JRST NOSELA
678: CONO IBM,CRESET
679: PUSHJ P,BLAST
680: PUSHJ P,DISMES
681: ASCIZ/I THINK I'M OFF LINE!
682: /
683: AOS CSTOP
684: NOSELA: PUSHJ P,ERROR1
685: MOVE UUO,CNISAV
686: NOSEL: SKIPGE CT
687: JRST NOLSRC
688: PUSHJ P,DISMES
689: ASCIZ/TOO MANY LOSING SEARCHES.
690: /
691: AOS TYPANY
692: PUSHJ P,ERROR0
693: HLRZ TAC,SKDAT+1
694: LSH TAC,4
695: HRL TAC,SKDAT
696: LSH TAC,-2
697: EXCH TAC,SCDAT
698: CAMN TAC,SCDAT
699: JRST NOLSRC
700: PUSH P,TAC
701: PUSHJ P,DISERR
702: [ASCIZ/SCDAT WAS CLOBBERED!
703: OLD SCDAT = /]
704: DISARG OCT,<-1(P)>
705: [ASCIZ/
706: NEW SCDAT = /]
707: DISARG OCT,SCDAT
708: [ASCIZ/
709: /]
710: -1
711: POP P,TAC
712: NOLSRC: SKIPN HNGFLG
713: JRST NOHUNG
714: AOS DSKFLG
715: AOS TYPANY
716: PUSHJ P,DISMES
717: ASCIZ/HUNG TIMEOUT!
718: /
719: NOHUNG: TDNE UUO,[DCHNER,,ATTN!BUSY!UXCPTN]
720: PUSHJ P,ERROR0
721: TLNN UUO,DSKNXM
722: JRST NONXM
723: PUSHJ P,DISERR
724: [ASCIZ/DISK NON-EX-MEM.
725: DISK MA = /]
726: DISARG LOC,XDSKMA
727: [ASCIZ/
728: /]
729: -1
730: PUSHJ P,ERROR1
731: AOS TYPANY
732: NONXM: TLNN UUO,CPARER
733: JRST BPAR
734: MOVE TAC,XDSKMA
735: CAMG TAC,RMEMSIZ
736: CAIGE TAC,20
737: AOSE SHADPE
738: JRST REALPE
739: PUSHJ P,ZSHAD
740: JFCL
741: AOS DSKFLG
742: JRST NOPAR
743: REALPE: PUSHJ P,DISERR
744: [ASCIZ/CORE TO DISK PARITY ERROR.
745: DISK MA = /]
746: DISARG LOC,XDSKMA
747: [ASCIZ/
748: /]
749: -1
750: SKIPA TAC,RMEMSIZ
751: SKIP (TAC)
752: SOJGE TAC,.-1
753: AOS TYPANY
754: BPAR: TRNN UUO,PARERR
755: JRST NOPAR
756: PUSHJ P,ERROR1
DSKINT page# 0011 next prev
758:
759: NOPAR: TRNE UUO,NEWST
760: TRNN UUO,UCHK
761: JRST TYPE0
762: POPACS
763: PUSHJ P,SENSE
764: CAIA
765: JRST SNSDON
766: PUSHACS
767: PUSHJ P,DISMES
768: ASCIZ/SENSE FAILED.
769: /
770: AOS CSTOP
771: AOS TYPANY
772: PUSHJ P,ERROR1
773: JRST TYPE0
774:
775: SNSDON: PUSHACS
776: AOS SNSTYP
777: LDB UUO,[POINT 16,SNSDAT,15]
778: TRNN UUO,CMDRJT
779: JRST NORJCT
780: TRNE UUO,WRTINH
781: JRST NORJCT
782: LDB TAC,[POINT 8,SNSDAT+1,31]
783: CAIE TAC,DVERR
784: CAIN TAC,DWERR
785: SKIPL ERRCMD
786: CAIA
787: JRST [ AOS DEATH
788: AOS DSKFLG
789: JRST NORJCT]
790: PUSHJ P,ERROR0
791: NORJCT: TRNE UUO,BITCL0
792: PUSHJ P,ERROR0
793: TRNE UUO,BITCL1
794: PUSHJ P,ERROR1
795: TRNN UUO,BITEQU
796: JRST NOCL13
797: LDB TAC,[POINT 8,SNSDAT+1,31]
798: CAIE TAC,SKCHK
799: CAIN TAC,SKINCP
800: JRST SKCHKA
801: CAIN TAC,RTYABT
802: JRST [ PUSHJ P,ERROR4
803: JRST NOCL13]
804: TRNE UUO,PERM
805: AOS CSTOP
806: PUSHJ P,ERROR1
807: JRST NOCL13
808:
809: SKCHKA: POPACS
810: PUSHJ P,ERROR3
811: PUSHACS
812: LDB UUO,[POINT 16,SNSDAT,15]
813: NOCL13: TRNE UUO,BITCL2
814: PUSHJ P,ERROR2
815: TRNE UUO,BITCL4
816: PUSHJ P,ERROR4
817: TRNE UUO,BITCL5
818: PUSHJ P,ERROR5
DSKINT page# 0012 next prev
820:
821: LDB TAC,[POINT 8,SNSDAT,23]
822: TRNN TAC,ERRUSE
823: JRST TYPE0
824: AOS DSKFLG
825: PUSHJ P,DISDATE
826: PUSHJ P,DISMES
827: ASCIZ/3330 ERROR-USAGE STATISTICS.
828: /
829: PUSHJ P,DRIVEP
830: PUSHJ P,DISMES
831: ASCIZ/ PACK = /
832: LDB TAC,[POINT 3,LSTAT,11]
833: PUSHJ P,DISLOC
834: PUSHJ P,DISMES
835: ASCIZ/
836: TBYTES = /
837: LDB TAC,[POINT 32,SNSDAT+2,31]
838: PUSHJ P,DISDEC
839: LDB UUO,[POINT 16,SNSDAT+3,15]
840: JUMPE UUO,ERRU1
841: PUSHJ P,DISMES
842: ASCIZ/
843: CDCHKS = /
844: MOVE TAC,UUO
845: PUSHJ P,DISDEC
846: ERRU1: LDB UUO,[POINT 16,SNSDAT+3,31]
847: JUMPE UUO,ERRU2
848: PUSHJ P,DISMES
849: ASCIZ/
850: RDCHKS = /
851: MOVE TAC,UUO
852: PUSHJ P,DISDEC
853: ERRU2: PUSHJ P,DISMES
854: ASCIZ/
855: NSEEKS = /
856: LDB TAC,[POINT 16,SNSDAT+4,15]
857: PUSHJ P,DISDEC
858: LDB UUO,[POINT 8,SNSDAT+4,31]
859: JUMPE UUO,ERRU3
860: PUSHJ P,DISMES
861: ASCIZ/
862: ESEEKS = /
863: MOVE TAC,UUO
864: PUSHJ P,DISDEC
865: ERRU3: LDB UUO,[POINT 8,SNSDAT+5,7]
866: JUMPE UUO,ERRU4
867: PUSHJ P,DISMES
868: ASCIZ/
869: COVRRN = /
870: MOVE TAC,UUO
871: PUSHJ P,DISDEC
872: ERRU4: LDB UUO,[POINT 8,SNSDAT+5,15]
873: JUMPE UUO,ERRU5
874: PUSHJ P,DISMES
875: ASCIZ/
876: DOVRRN = /
877: MOVE TAC,UUO
878: PUSHJ P,DISDEC
879: ERRU5: PUSHJ P,DISMES
880: ASCIZ/
881:
882:
883: /
DSKINT page# 0013 next prev
885:
886: TYPE0: SKIPE DSKFLG
887: JRST TYPE1
888: AOS TYPANY
889: PUSHJ P,DISMES
890: ASCIZ/UNKNOWN /
891: TYPE1: SKIPN TYPANY
892: JRST ERRGO
893: PUSHJ P,DISMES
894: ASCIZ/DISK ERROR. /
895: PUSHJ P,DISDAT
896: MOVE UUO,DSKACS+DDB
897: SKIPL DSKLRN
898: SKIPN FILNAM(UUO)
899: JRST NOFIL
900: PUSHJ P,DISMES
901: ASCIZ/FILE = /
902: MOVE TAC1,FILNAM(UUO)
903: PUSHJ P,DISSIX
904: HLLZ TAC1,FILEXT(UUO)
905: JUMPE TAC1,NOEXT
906: MOVEI TEM,"."
907: PUSHJ P,DISTYO
908: HLLZ TAC1,FILEXT(UUO)
909: PUSHJ P,DISSIX
910: NOEXT: MOVEI TEM,"["
911: PUSHJ P,DISTYO
912: MOVE TAC1,FILPPN(UUO)
913: PUSHJ P,DISSIX
914: PUSHJ P,DISMES
915: ASCIZ/] /
916: NOFIL: MOVE UUO,ERRCMD
917: ADDI UUO,1
918: PUSHJ P,DISERR
919: (UUO)[ ASCIZ/DIAG/
920: ASCIZ/SEEK/
921: ASCIZ/SRCH/
922: ASCIZ/READ/
923: ASCIZ/WRITE/]
924: [ASCIZ/ OP
925: /]
926: -1
927: MOVE TAC,DSKLRN
928: CAMN TAC,[-1]
929: JRST SATPNT
930: CAMN TAC,[-2]
931: JRST NSWAP
932: PUSHJ P,DISMES
933: ASCIZ/JOB = /
934: HRRZ TAC,DXJ
935: PUSHJ P,DISDCP
936: SKIPL DXJ
937: JRST NSWAP1
938: PUSHJ P,DISMES
939: ASCIZ/ SWAP/
940: NSWAP1: PUSHJ P,DISERR
941: [ASCIZ/ DXS = /]
942: DISARG OCT,DXS
943: [ASCIZ/ DXW = /]
944: DISARG OCT,DXW
945: -1
946: JRST NSWAP
947:
948: SATPNT: PUSHJ P,DISMES
949: ASCIZ/SAT TABLE/
950: NSWAP: PUSHJ P,DISERR
951: [ASCIZ/
952: CONI BITS = /]
953: DISARG OCT,CNISAV
954: [ASCIZ/
955: /]
956: -1
957: PUSHJ P,DISMES
958: ASCIZ/PACK = /
959: LDB TAC,[POINT 3,LSTAT,11]
960: PUSHJ P,DISLOC
961: PUSHJ P,DISMES
962: ASCIZ/ CYL = /
963: LDB TAC,[POINT 16,SKDAT,31]
964: PUSHJ P,DISLOC
965: PUSHJ P,DISMES
966: ASCIZ/ HD = /
967: LDB TAC,[POINT 8,SKDAT+1,15]
968: PUSHJ P,DISLOC
969: PUSHJ P,DISMES
970: ASCIZ/ REC = /
971: LDB TAC,[POINT 8,SCDAT+1,7]
972: PUSHJ P,DISLOC
973: PUSHJ P,DISMES
974: ASCIZ/
975: /
976: SKIPN HAFLAG
977: JRST NOHA
978: PUSHJ P,DISMES
979: ASCIZ/HA CYL = /
980: LDB TAC,[POINT 16,HA,23]
981: PUSHJ P,DISLOC
982: PUSHJ P,DISMES
983: ASCIZ/ HA HD = /
984: LDB TAC,[POINT 8,HA+1,7]
985: PUSHJ P,DISLOC
986: PUSHJ P,DISMES
987: ASCIZ/
988: /
989: NOHA: MOVEI UUO,0
990: CLLOP: SKIPN ERRCL0(UUO)
991: JRST NOCL
992: PUSHJ P,DISERR
993: [ASCIZ/C/]
994: DISARG DEC,UUO
995: [ASCIZ/ = /]
996: DISARG DEC,ERRCL0(UUO)
997: [ASCIZ/ /]
998: -1
999: NOCL: CAIGE UUO,4
1000: AOJA UUO,CLLOP
1001: SKIPN DEATH
1002: JRST NODIE
1003: PUSHJ P,DISMES
1004: ASCIZ/ DEATH/
1005: NODIE: PUSHJ P,DISMES
1006: ASCIZ/
1007: /
1008: SKIPN SNSTYP
1009: JRST TYPDON
1010: PUSHJ P,DRIVEP
1011: PUSHJ P,DISMES
1012: ASCIZ/ SENSE DATA =
1013: /
1014: MOVE UUO,[POINT 8,SNSDAT]
1015: PUSH P,[0]
1016: SNSLOP: ILDB TAC,UUO
1017: JUMPE TAC,NULSNS
1018: PUSH P,TAC
1019: PUSHJ P,DISERR
1020: DISARG DEC,-2(P)
1021: [ASCIZ/ = /]
1022: DISARG LOC,-1(P)
1023: [ASCIZ/
1024: /]
1025: -1
1026: POP P,(P)
1027: NULSNS: AOS TAC,(P)
1028: CAIGE TAC,SNSLEN
1029: JRST SNSLOP
1030: POP P,(P)
1031: TYPDON: PUSHJ P,DISMES
1032: ASCIZ/
1033:
1034:
1035: /
1036: ERRGO: SKIPN CSTOP
1037: JRST NOSTOP
1038: PUSHJ P,DISMES
1039: ASCIZ/DO SOMETHING ABOUT IT, THEN PUSH CONTINUE.
1040:
1041:
1042: /
1043: SETOM DISFLAG
1044: PUSHJ P,DISFLUSH
1045: HALT .+1
1046: NOSTOP: POPACS
1047: PUSHJ P,BLAST
1048: SKIPN DEATH
1049: POPJ P,
1050: MOVE TAC1,DSKACS+DDB
1051: MOVEI AC3,IODERR
1052: MOVE TAC,ERRCL2
1053: CAML TAC,MAXCL2
1054: TRO AC3,IODTER
1055: IORM AC3,DEVIOS(TAC1)
1056: JRST CPOPJ1
1057:
1058: DRIVEP: PUSHJ P,DISMES
1059: ASCIZ/DRIVE /
1060: LDB TEM,[POINT 6,SNSDAT+1,7]
1061: JUMPN TEM,ISKNWN
1062: PUSHJ P,DISMES
1063: ASCIZ/UNKNOWN/
1064: POPJ P,
1065:
1066: ISKNWN: ANDI TEM,7
1067: ADDI TEM,"A"
1068: JRST DISTYO
DSKINT page# 0014 next prev
1070:
1071:
1072:
1073:
1074:
1075:
1076:
1077:
1078:
1079:
1080:
1081:
1082:
1083:
1084:
1085:
1086:
1087:
1088:
1089:
1090:
1091:
1092:
1093:
1094:
1095:
1096:
1097:
1098:
1099:
1100:
1101:
1102:
1103:
1104:
1105:
1106:
1107:
DSKINT page# 0015 next prev
1109:
1110: ERROR0: TDZA TAC1,TAC1
1111: ERROR1: MOVEI TAC1,1
1112: ERRORX: AOS DSKFLG
1113: AOS TOTCL0(TAC1)
1114: AOS TAC,ERRCL0(TAC1)
1115: CAMGE TAC,MAXCL0(TAC1)
1116: JRST TYTST
1117: AOS DEATH
1118: JRST TYPIT
1119:
1120: TYTST: TDNE TAC,TYMSK0(TAC1)
1121: SKIPE TYPCL0(TAC1)
1122: TYPIT: AOS TYPANY
1123: POPJ P,
1124:
1125: ERROR2: AOS DSKFLG
1126: AOS TOTCL2
1127: AOS TAC,ERRCL2
1128: CAML TAC,MAXCL2
1129: JRST TBAD
1130: MOVEI TAC1,2
1131: JRST TYTST
1132:
1133: TBAD: AOS DEATH
1134: AOS TYPANY
1135: JRST MRKBAD
1136:
1137: ERROR3: MOVEI TAC1,3
1138: PUSHJ P,ERRORX
1139: SETZM ERRHA
1140: SETZM ERRRCL
1141: REHA: PUSHJ P,BLAST
1142: CONO IBM,CNEWST!CLREND!ACTCLR
1143: CONO PMP,NEWST!UNEND!10!DSKCHN
1144: DATAO PMP,[HA]
1145: DATAO IBM,RDHACM
1146: PUSHJ P,ISYNC
1147: JRST REHA
1148: CAIA
1149: JRST DORCLA
1150: CONO IBM,2
1151: AOS TAC,ERRHA
1152: CAMGE TAC,MAXHA
1153: JRST REHA
1154: AOS TYPANY
1155: AOS CSTOP
1156: PUSHACS
1157: PUSHJ P,DISMES
1158: ASCIZ/READ HOME ADDRESS LOST!
1159: /
1160: POPACS
1161: POPJ P,
1162:
1163: DORCLA: SETOM HAFLAG
1164: DORCL: PUSHJ P,BLAST
1165: CONO IBM,CNEWST!CLREND!ACTCLR
1166: CONO PMP,NEWST!UNEND!10!DSKCHN
1167: DATAO IBM,RCALCM
1168: PUSHJ P,ISYNC
1169: JRST DORCL
1170: JRST ERRCAL
1171: MOVE TAC,PMPCNI
1172: TRNE TAC,DEVEND
1173: POPJ P,
1174: CONO IBM,ACTCLR
1175: PUSHJ P,ISYNC
1176: JRST DORCL
1177: JRST ERRCAL
1178: MOVE TAC,PMPCNI
1179: TRNE TAC,DEVEND
1180: POPJ P,
1181: ERRCAL: CONO IBM,2
1182: AOS TAC,ERRRCL
1183: CAMGE TAC,MAXRCL
1184: JRST DORCL
1185: AOS TYPANY
1186: AOS CSTOP
1187: PUSHACS
1188: PUSHJ P,DISMES
1189: ASCIZ/RECALIBRATE FAILED!
1190: /
1191: POPACS
1192: POPJ P,
1193:
1194: ERROR4: MOVEI TAC1,4
1195: JRST ERRORX
1196:
1197: ERROR5: AOS DSKFLG
1198: LDB TAC,[POINT 3,LSTAT,11]
1199: CAIG TAC,FPACKS-1
1200: JRST SYSLOS
1201: AOS DEATH
1202: MOVEI TAC,IOIMPM
1203: MOVE TAC1,DSKACS+DDB
1204: IORM TAC,DEVIOS(TAC1)
1205: POPJ P,
1206:
1207: SYSLOS: TRNN UUO,WRTINH
1208: JRST SYSLOX
1209: PUSHJ P,DISMES
1210: ASCIZ/PACK IN WRITE LOCK!
1211: /
1212: SYSLOZ: AOS TYPANY
1213: AOS CSTOP
1214: POPJ P,
1215:
1216: SYSLOX: LDB TAC,[POINT 6,SNSDAT+1,7]
1217: JUMPE TAC,SYSLOY
1218: PUSHJ P,DISMES
1219: ASCIZ/DRIVE NOT READY!
1220: /
1221: JRST SYSLOZ
1222:
1223: SYSLOY: PUSHJ P,DISMES
1224: ASCIZ/ID PLUG NOT INSTALLED!
1225: /
1226: JRST SYSLOZ
1227:
1228: SENSE: SETZM ERRSNS
1229: SENSE1: PUSHJ P,BLAST
1230: CONO IBM,CNEWST!CLREND!ACTCLR
1231: CONO PMP,NEWST!UNEND!10!DSKCHN
1232: DATAO PMP,SNWCMA
1233: DATAO IBM,SNSCMD
1234: PUSHJ P,ISYNC
1235: JRST SENSE1
1236: CAIA
1237: JRST CPOPJ1
1238: AOS TAC,ERRSNS
1239: CAML TAC,MAXSNS
1240: POPJ P,
1241: JRST SENSE1
1242:
1243: BLAST: MOVEI TAC,10000
1244: CONSO PMP,IDLE
1245: SOJG TAC,.-1
1246: CONO IBM,CRESET!CNEWST!CLREND!ACTCLR
1247: MOVEI TAC,1000
1248: SOJG TAC,.
1249: POPJ P,
DSKINT page# 0016 next prev
1251:
1252: JSR 0,D2X
1253: ↑D2IGO: DATAO PMP,SKWCMA
1254: DATAO IBM,SKCMD
1255: SKSRCH: MOVNI TAC,RCPBLK*3
1256: MOVEM TAC,CT
1257: SETOM LSTREC
1258: DATAO PMP,SCWCMA
1259: DATAO IBM,SCCMD
1260: JSR 0,D2X
1261: DOCMD: DATAO PMP,XWCMA
1262: DATAO IBM,XCMD
1263: JSR 1,D2X
1264: TRNN TAC,STMOD
1265: JRST RESRCH
1266: AOS WCT
1267: READDN:
1268: LDB TAC,[POINT 8,SCDAT+1,7]
1269: MOVE TAC,RCLTAB(TAC)
1270: ADD TAC,XWCMA
1271: XCT ENDTST
1272: JRST D2FIN
1273: MOVEM TAC,XWCMA
1274: MOVE TAC,SCDAT+1
1275: MOVEM TAC,LSTREC
1276: MOVSI TAC,(<BYTE(8)1>)
1277: ADDB TAC,SCDAT+1
1278: CAMG TAC,[BYTE(8)RCPTRK-1]
1279: JRST READON
1280: SKIPL DSKLRN
1281: JRST D2EOD
1282: MOVE TAC,XWRAP
1283: MOVEM TAC,SCDAT+1
1284: MOVE TAC,[BYTE(16)1]
1285: ADDB TAC,SKDAT+1
1286: CAMG TAC,[BYTE(16)TRKCYL-1]
1287: JRST SKOK
1288: MOVEI TAC,1⊗4
1289: ADDM TAC,SKDAT
1290: SETZM SKDAT+1
1291: LDB TAC,[POINT 3,SKCMD,21]
1292: MOVE TAC,NCYLSH(TAC)
1293: CAMG TAC,SKDAT
1294: JRST D2EOD
1295: SKOK: HLRZ TAC,SKDAT+1
1296: LSH TAC,4
1297: HRL TAC,SKDAT
1298: LSH TAC,-2
1299: MOVEM TAC,SCDAT
1300: DATAO PMP,SKWCMA
1301: DATAO IBM,SKCMD
1302: JSR 2,D2X
1303: JRST SKSRCH
DSKINT page# 0017 next prev
1305:
1306: D2EOD: SETOM D2LUZ
1307: D2FIN: DATAO IBM,NOPCMD
1308: JSR 2,D2X
1309: SETOM D2DONE
1310: LSRCH: CONO PMP,NEWST!UNEND!10!DSKCHN
1311: JSR 2,D2X
1312: JRST D2BARF
1313:
1314: RESRCH: DATAO IBM,NOPCMD
1315: AOS LCT
1316: AOSL CT
1317: JRST LSRCH
1318: DATAO PMP,SCWCMA
1319: DATAO IBM,SCCMD
1320: JSR 1,D2X
1321: SETOM LSTREC
1322: JRST DOCMD
1323:
1324:
1325: SRCLUP: MOVNI TAC,RCPBLK*3
1326: MOVEM TAC,CT
1327: DATAO PMP,SCWCMA
1328: DATAO IBM,SCCMD
1329: JSR 2,D2X
1330: SETOM LSTREC
1331: JRST DOCMD
1332:
1333:
1334: READON: MOVE TAC,XCMD
1335: TRNE TAC,1
1336: JRST SRCLUP
1337: DATAO PMP,XWCMA
1338: DATAO IBM,XCMD
1339: JSR 2,D2X
1340: SETOM LSTREC
1341: JRST READDN
1342:
1343:
1344: RCLTAB:
1345: REPEAT BKPTRK,<
1346: SECSIZ,,SECSIZ
1347: REPEAT RCPBLK,<
1348: RECSIZ,,RECSIZ
1349: >
1350: >
1351:
1352: BEND DSKINT
1353:
1354: ↑IXINT←IXINT
1355:
1356: BEND DSKSER
EOF: DSKINT end-of-file. cnt=16